1. Field of the Invention
The present invention relates to a communication encryption processing apparatus for performing an encryption process, an authentication process, and the like.
2. Description of the Related Art
In recent years, various types of data such as documents, images, and audio have been transmitted and received across the globe via communication paths including the Internet, an intranet, etc. At the same time, demands for faster communication have been increased along with the spread of ADSL, optical fibers, and so on. A large number of pieces of data desired to be kept secret to third parties are contained among the transmitted and received data, such as data related to an individual's privacy and classified data. For that reason, communication encryption processing technologies have been developed for performing a communication through encrypting data by way of SSL/TLS, IPsec, etc., so that the data becomes unbreakable to third parties.
Here, a brief description will be given of SSL/TLS as an example of the communication encryption processing technologies. Main protocols of SSL/TLS are a handshake protocol and a record protocol. Based on the handshake protocol, authentication of a communicating partner, selection of an encryption algorithm used for the record protocol, and generation of a common key used for the encryption algorithm are performed.
On the other hand, based on the record protocol, calculation for a message authentication code of the transmitted and received data, and encryption and decryption are performed. Thus, SSL/TLS prevents impersonation by performing the authentication of the communicating partner, data tamper by calculating MD of the transmitted and received data, and eavesdropping by encrypting the transmitted and received data.
FIG. 11 illustrates an example of a conventional security chip 900 that performs SSL/TLS.
In the conventional security chip 900, a main CPU 10 performs a control within the conventional security chip 900. Then, a communication I/F 11 transmits and receives data via a network 102 with an external apparatus A 12, an external apparatus B 13, the external apparatus C 14, etc., so that a communication encryption processing apparatus 901 performs a process of SSL/TLS.
The main CPU 10, the communication I/F 11, and the communication encryption processing apparatus 901 are connected to one another via a common bus 101. The communication encryption processing apparatus 901 includes a CPU 2, which stores a control program for performing an entire control within the communication encryption processing apparatus 901 and a work memory 3 for temporarily holding data before and after a process is performed in an encryption and decryption processing module 906.
The communication encryption processing apparatus 901 also includes an external I/F 4 for writing the data received from the main CPU 10 and the communication I/F 11 in the work memory 3 and transmitting the data from the work memory 3 to the main CPU 10 and the communication I/F 11. The communication encryption processing apparatus 901 also includes a key management module 905 for managing a life cycle of a key used for the encryption and decryption process in the communication encryption processing apparatus 901.
The communication encryption processing apparatus 901 also includes the encryption and decryption processing module 906 used for performing the encryption process and the decryption process with respect to the data read from the work memory 3 by using the key supplied from the key management module 905 and for generating the message authentication code. The communication encryption processing apparatus 901 also includes a memory 908, which is connected to the key management module 905 via memory bus 912, that is used in the encryption and decryption processing module 906, for storing the key whose life cycle is managed by the key management module 905. The CPU 2, the work memory 3, the external I/F 4, the key management module 905, and the encryption and decryption processing module 906 are connected one another via a common bus 100.
Next, an operation of the conventional security chip 900 will be briefly described.
When the main CPU 10 receives data from the external apparatus A 12 via the network 102 and the communication I/F 11, the main CPU 10 transmits the received data to the communication encryption processing apparatus 901. Next, the communication encryption processing apparatus 901, which has received the data via the external I/F 4, temporarily holds the received data in the work memory 3.
Next, the communication encryption processing apparatus 901 delivers the key shared with the external apparatus A 12 from the key management module 905 to the encryption and decryption processing module 906. Next, the encryption and decryption processing module 906 reads the data held in the work memory 3 to perform the encryption and decryption process and writes the processed data in the work memory 3 again. Finally, when the processes on all the data received by the encryption and decryption processing module 906 are completed, the data held in the work memory 3 is sent to the main CPU 10 via the external I/F 4.
FIG. 10 illustrates timings for the key generation and key delivery process performed in the key management module 905 while an encryption communication is performed in the following three partners including the external apparatus A 12, the external apparatus B 13, and the external apparatus C 14 and timings for the encryption process performed in the encryption and decryption processing module 906.
First, at T101, a key used for the encryption communication with the external apparatus A 12 is generated. At T102, the key generated at T101 is delivered from the key management module 905 to the encryption processing module. From T103 to T105, the encryption and decryption processing module 906 performs the encryption process. At this time, the key management module 905 generates a key necessary for the encryption communication with the external apparatus B 13 at T104.
When the encryption process is completed, at T106 the key management module 905 delivers the key generated at T104 which is necessary for the encryption communication with the external apparatus B 13. Subsequently, at T107, the encryption and decryption processing module 906 uses the key delivered at T106 to perform the encryption process for the encryption communication with the external apparatus B 13.
In order that the encryption communication is performed with the external apparatus A 12 again at T108, the key management module 905 generates a key at T101. After that, the held key used for the external apparatus A 12 is delivered to the encryption and decryption processing module 906, at T109 and T110, the encryption and decryption processing module 906 performs the encryption process for the encryption communication with the external apparatus A 12.
At T110, the key management module 905 generates a key for the encryption communication with the external apparatus C 14. At T111, the key is delivered to the encryption and decryption processing module 906. Then, at T112, the encryption and decryption processing module 906 performs the encryption process for the encryption communication with the external apparatus C 14.
In this manner, the communication encryption processing apparatus can perform the encryption communication with the three partners of the external apparatus A 12, the external apparatus B 13, and the external apparatus C 14 (refer to Japanese Patent Laid-Open No. 2006-191207).
However, in the above-described conventional example, it is necessary to deliver the key used for the encryption process from the key management module via the bus. For this reason, the key itself is obvious from the control program on the CPU that controls the entirety of the system. Thus, there is a security risk problem in that the key is leaked to the outside if the control program is accidentally infected by a virus or the like. Also, as the input and output data is transmitted and received between the encryption and decryption processing module and the memory, there is a problem in that if the bus is used for the key delivery, the transfer efficiency is decreased and the efficient delivery cannot be preformed.